#include "./../inc/file.h"

// 获取指定目录下的所有文件
int findBMPByDir(char *path, file_node_p headNode)
{
    DIR *dirp = opendir(path);
    while (1)
    {
        struct dirent *dir_cont = readdir(dirp);
        if (dir_cont == NULL)
        {
            break;
        }

        char *dot = strrchr(dir_cont->d_name, '.');
        if (dot && strcmp(dot, ".bmp") == 0)
        {
            file_node_create(headNode, dir_cont->d_name, path);
        }
    }
    closedir(dirp);
}

// void copy_dir(const char *src, const char *dst)
// {
//     DIR *dir = opendir(src);
//     if (!dir)
//     {
//         perror("opendir");
//         return;
//     }

//     // 创建目标目录
//     mkdir(dst, 0755);

//     struct dirent *entry;
//     while ((entry = readdir(dir)))
//     {
//         if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0)
//             continue;

//         char src_path[1024], dst_path[1024];
//         snprintf(src_path, sizeof(src_path), "%s/%s", src, entry->d_name);
//         snprintf(dst_path, sizeof(dst_path), "%s/%s", dst, entry->d_name);

//         struct stat st;
//         if (lstat(src_path, &st) == -1)
//         {
//             perror("lstat");
//             continue;
//         }

//         if (S_ISDIR(st.st_mode))
//         {
//             copy_dir(src_path, dst_path);
//         }
//         else if (S_ISREG(st.st_mode))
//         {
//             // 简单文件复制
//             FILE *src_file = fopen(src_path, "rb");
//             FILE *dst_file = fopen(dst_path, "wb");

//             printf("copying %s to %s\n", src_path, dst_path);

//             if (src_file && dst_file)
//             {
//                 char buffer[4096];
//                 size_t bytes;
//                 while ((bytes = fread(buffer, 1, sizeof(buffer), src_file)) > 0)
//                 {
//                     fwrite(buffer, 1, bytes, dst_file);
//                 }

//                 fclose(src_file);
//                 fclose(dst_file);
//             }
//         }
//     }

//     closedir(dir);
// }